﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using LosScrum.Persistencia;
using LosScrum.Dominio;

namespace LosScrum
{
    public class RecursosServices : IRecursosServices
    {
        private RecursoDAO recursoDAO = null;
        private RecursoDAO RecursoDAO
        {
            get
            {
                if (recursoDAO == null)
                    recursoDAO = new RecursoDAO();
                return recursoDAO;
            }
        }

        private TipoRecursoDAO tiporecursoDAO = null;
        private TipoRecursoDAO TipoRecursoDAO
        {
            get
            {
                if (tiporecursoDAO == null)
                    tiporecursoDAO = new TipoRecursoDAO();
                return tiporecursoDAO;
            }
        }



        public Recurso CrearRecurso(string nombre, string estado, int tiporecurso)
        {

            TipoRecurso tiporecursoExistente = TipoRecursoDAO.Obtener(tiporecurso);

            Recurso recursoACrear = new Recurso()
            {
                Nombre = nombre,
                Estado = estado,
                TipoRecurso = tiporecursoExistente
            };
            return RecursoDAO.Crear(recursoACrear);
        }



        public Recurso ObtenerRecurso(int codigo)
        {
            return RecursoDAO.Obtener(codigo);
        }



        public Recurso ModificarRecurso(int codigo, string nombre, string estado, int tiporecurso)
        {
            TipoRecurso tiporecursoExistente = TipoRecursoDAO.Obtener(tiporecurso);

            Recurso recursoAModificar = new Recurso()
            {
                Codigo = codigo,
                Nombre = nombre,
                Estado = estado,
                TipoRecurso = tiporecursoExistente
            };
            return RecursoDAO.Modificar(recursoAModificar);
        }



        public void EliminarRecurso(int codigo)
        {
            Recurso recursoExistente = RecursoDAO.Obtener(codigo);
            RecursoDAO.Eliminar(recursoExistente);
        }



        public List<Recurso> ListarRecursos()
        {
            return RecursoDAO.ListarTodos().ToList();
        }



    }
}
